home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 2
/
Merciful - Disc 2.iso
/
software
/
s
/
scdbv1.0d.lha
/
scdb_10d
/
scdb.doc
< prev
next >
Wrap
Text File
|
1995-03-15
|
13KB
|
381 lines
SCDB.DOC SCDB version 1.0c Achim Gorski
Mar 1995
SCDB, (c) Copyright 1994-95, Achim Gorski. All Rights Reserved.
This software may be distributed for non-profit only. This software
is FREEWARE, but NOT FOR COMMERICAL USE! This program is provided "as
is" without warranty of any kind. All risks involved using this
program is entirely yours. The author assumes no responsibility or
liability whatever for any damage or dataloss caused by using SCDB.
Although everything has been done to make sure the program is fully
functional, the author cannot guarantee this for a 100%.
Achim Gorski
Starenweg 27
50997 Koeln
Germany
Donations welcome but not solicited.
SCDB - a Sound Carrier DataBase.
SCDB is based on isam (indexed sequential acces method) and uses a
multilevel index structure.
If you search for Artist/Title and you know the first characters of
Artist, SCDB should find this entry in N/72 comparisons and (N/36)+1
for a unsuccessful search.( N = number of entries) Ok, this is not
binarysearch or treesearch but it was the easiest and fastest way to
realizse SCDB.
----------------------------------------------------------------------
-- AMIGA: Don't use the Commodore-shell, 'cause it filters CTRL-C/D --
-- OTHER: Some shells may filter Xon/Xoff CHRs : ^Q ^S ^X ^C --
-- Try to disable any filter or SCDB won't work correctly. --
----------------------------------------------------------------------
ALPHA (DEC), INTEL, ...
!! THE DEFAULT "Music.SDB" SCDB-DATABASE IS A 32 BIT BIG-ENDIAN !!
!! BYTE ORDERING DATABASE. USE THE BUILD-IN CONVERT FUNCTION !!
Some Processors (e.g. Intel & National Semiconductor) use
little-endian byte ordering! The default SCDB-database is saved in
big-endian byte ordering.
Little-endian byte ordering processors address the lowest byte with
increasing addresses.
Example:
ADDRESS|00|01|02|03
-------+--+--+--+--
VALUE |AA|BB|CC|DD <- Big-endian byte ordering
|DD|CC|BB|AA <- Little-endian byte ordering
----------------------------------------------------------------------
Edit the files 'Category', 'Label' and 'Type' for your own
configuration. Maximum possible entries in 'Category'(max. 30 chars
per row) and 'Label'(max. 38 chars per row) are 99. Maximum possible
entries in 'Type'(max. 11 chars per row) are 31. These files should
be in the current directory (only 'Type' has a build-in default
configuration). After changing 'Type' you should reorganize your
database or you will get wrong statistics!
The default 'Music.SDB' SCDB-database will be read if no argument is
given! Do not read this document (waste of time)! Use the program!!
Try 'SCDB -h'.
Short INFO about SCDB:
COMMAND MODE
CTRL-?
Help
CTRL-F
Find Artist/Title. Try TAB-completion (once: ARTIST-completion,
twice: TITLE-completion). The function ignores every
none-alphanumeric-chars !!
F
Find next Artist/Title
CTRL-L
Log record IN or OUT. Ok, you loaned it - this should change
LOCATION. Your chance to change it.
L
List loaned records.
V
View index ON/OFF
If index ON:
KEY ACTION
----------------------------------------------------
7 jump to top of page
1 jump to bottom of page
SPACE/DEL one page forward/backward
arrow right/left one page forward/backward
arrow up/down or +/- one line forward/backward
--Cherrymoon <--.
+---Trax II | *L 10/1994 Vinyl-Maxi
^ | ^ ^ ^
| `-- artist | | |
`------------ title record is loaned --´ | |
release date -------´ |
type --------------´
S
Searches for the string found in 'See also'
CTRL-S
Statistics
TT: 0y 0d 0h 0m 0s (Total time of Total Time) -:))
| | | | |
| | | | `-- seconds
| | | `----- minutes
| | `-------- hours
| `----------- days
`--------------- years
CTRL-P
Print current entry to SCDB_OUTPUT. If you want to use this
functions, you should set the enviroment-variable 'SCDB_OUTPUT'.
UNIX : set SCDB_OUTPUT=value
export SCDB_OUTPUT
(depends on your shell)
"value" is the printer-device!
BSD Unix: look at /etc/printcap
for the printer-device!
AMIGA: setenv SCDB_OUTPUT="prt:"
OTHER: Read your system manual !
SCDB_OUTPUT should be an ASCII-printer or a filename.
P
Print current entry (short output!).
CTRL-R
Reorganizes the database. You should do this if you update from an
old to a new SCDB-version. Regorganize will correct all statistics,
remove trash and sort the database on disk. Never reorganize a
database if you run SCDB twice or more on the same database! This
cost only your time and will reorganize nothing.
CTRL-H
Hunts for specific information in the whole database. This
function will need some time ! TAB completes Artist, Title, Label,
Type, Category. It is possible to type an Artist-name in the
Title-field. The result is the first title of the given Artist-name.
Example:
Title: boo<TAB>
...
Title: 24 Hours
CTRL-W
Reads the whole database and creates a LIST of all entries which
match with the given key(s). Hunts for specific information like
CTRL-H. The output goes to SCDB_OUTPUT (look at CTRL-P). '**' in
Artist-field creates a list of the whole database.
W
Reads the whole database and creates a LIST (short output!). '**'
in Artist-field creates a list of the whole database.
CTRL-O
Prints a CassCover of selected entries to SCDB_PRINTER. While
choosing entries it is possible to use every function of SCDB (e.g.
FIND, HUNT,...). If you want to use this functions, you should set
the enviroment-variable 'SCDB_PRINTER'.
UNIX : set SCDB_PRINTER=value
export SCDB_PRINTER
(depends on your shell)
"value" is the printer-port!
BSD Unix: look at /etc/printcap
for the port name!
AMIGA: If your printer is on the parallel-port:
setenv SCDB_PRINTER="par:"
OTHER: Read your system manual !
Your printer should support IBM/Epson printer commands and character
sets and should not set to stay in panel style at power-up.
CTRL-U
Print label. Output goes to SCDB_PRINTER. You should use
self-adhesive labels (101,6 x 35,7 mm).
CTRL-^
Import ASCII delimited. The IMPORT-function is just a by-product
of my own imported database. So don't overrate it!
CTRL-\
This function let you exchange SCDB-databases from different
systems. It is possible to import any SCDB-database from any system
to any system! Little/Big-endian byte ordering or 32/64 bit(or more)
systems - no matter ! This function imports all.
Example:
[Input:] misc/alpha/Music.SDB
This will import a 64 bit little-endian byte ordering database.
Comment: importing a 64 bit database to a 32 bit system works if the
database is less then 4 Gbytes (2^32)!
This function also imports old SCDB-databases. Old SCDB-databases are
less or equal version 1.0c (02.03.95).
... all other functions should explain itself.
EDITOR MODE
Functions should explain itself. :-) (lazy programmer) (Rule:
writehowyalikeit!)
While editing Tracks it is possible to press TAB for Artist completion
(only if Artist is 'Various Artists' and only in the second half of a
string).
No further decription at this time: Just use it. Hit the keys and
you will see the results.
FUTURE: Any ideas??: send me mail.
----------------------------------------------------------------------
FOR THOSE WHO WANT TO KNOW MORE ABOUT THIS DATABASE:
Some information about the input-fields:
Field name Attributes Chars Comment
--------------------------------------------------------------
Artist Capitalize Words 49 Minimum: 1 char !
Title Capitalize Words 49 Not after "'"
Label Capitalize Words 38 Not after "'"
Catalog Upper case 26
See also Text 67
Type Text 11
Released Numeric 7 (?, mm/yyyy or yyyy)
Number Numeric 2 0 < x < 100
Tracks Numeric 4 0 < x < (99*Number)
Category Capitalize Words 30
Location Text 23
Barcode Numeric 18
Comment Text 1368
TRK Capitalize Words 68 Not after "'"
Time Numeric 5 (mm:ss)
THE STRUCTURE OF THE MAIN-FILE:
pos length[byte] field comment
---------------------------------------------------------------------
( <= Version 1.0c (02.03.95): )
( 0. 1 ID only once in the database )
( always 8 )
>= Version 1.0d:
0. 3 ID only once in the database
(always in Big-endian byte
ordering!!) Looks like that:
struct scdb_id {
unsigned int ID_1:4; /* ID_1: always 8 */
unsigned int endian:1; /* 1/0 big/little-endian */
unsigned int longs:6; /* bits=((longs+1)*4*8) */
unsigned int ID_2:7; /* ID_2=ID_1+endian+longs*/
unsigned int :6; /* Future */
};
1. unsigned long size of record
2. 1 length
max. 49 Artist min. 1
3. 1 length
max. 49 Title
4. 1 length
max. 38 Label
5. 1 length
max. 26 Catalog
6. 1 length
max. 11 Type
7. 1 length
max. 7 Released
8. 1 ..
max. 2 Number min. '1'
9. 1 ..
max. 4 Tracks min. '1'
10. 1 ..
max. 30 Category
11. 1 length=23 length always 23
23 Location
12. 1 length
max. 18 Barcode
13. 1 ..
11 Loaned on
14. 1 ..
8 Total Time
15. 1 ..
11 Rec-Date
16. 1 ..
max. 67 See also
17.
18 lines comment
saved in the known format: length,string,length,string,....
\__1 \__max.76
18.
Number of tracks per disc per record.
Example(VA-Club Classics Volume 1):
Number=2, Tracks=23; something like that should be saved:
0b 0c
19.
length,track-string,length,time,...... (for every track)
\__1 \__max.68 \__1 \__max.5
...next record -> goto 1.
Index-structure is a little bit different (build your own).
(I really hate writing documents ..^@#]´`%$`~/:@}[§"!}+..)
----------------------------------------------------------------------
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
! ! SAVE THE VINYL ! !
| | | | | | | | |
| | | | | | | | |
| | | | | | |
| | | | |
| | |
|